package com.woniuxy.educationplatform.service;

import com.woniuxy.educationplatform.bean.AdminBean;
import com.woniuxy.educationplatform.util.PageDto;
import org.apache.ibatis.annotations.Param;

/**
 * @author unreleased
 * @date 2020/12/10 11:12
 */
public interface IAdminService {
    /**
     *根据具体id查询管理员一些简单信息
     * @param id 根据id查询管理员
     * @return 返回一个管理员对象
     */
    AdminBean findAdminById(Integer id);

    /**
     * 根据登录名查询admin的信息
     * @param loginName 登录名
     * @return adminBean对象
     */
    AdminBean findAdminByLoginName(String loginName);

    /**
     * 判断修改是否成功
     * @param adminBean 修改对象的数据
     * @return 修改是否成功
     */
    boolean updateAdminByLoginName(@Param("a") AdminBean adminBean);

    /**
     * 管理员修改密码
     * @param loginName 登录名
     * @param oldPassword 原密码
     * @param newPassword 新密码
     * @return 是否修改成功
     */
    boolean updateAdminPassword(@Param("loginName") String loginName,@Param("oldPassword") String oldPassword,@Param("newPassword") String newPassword);

    /**
     * 根据条件分页查询 所有的管理员
     * @param adminBean 携带了条件的adminBean
     * @param pageNum 当前页码数
     * @param pageSize 每页多少条
     * @return 分页对象 回传总条数以及分页后的数据
     */
    PageDto findAllByParams(AdminBean adminBean,int pageNum,int pageSize);

    /**
     * 根据登录名来修改管理员信息
     * 用于超级管理员修改信息
     * 后期可用于修改管理员的登录名
     * @param adminBean 修改的数据
     * @param roleId 角色id
     * @return 数据库受影响条数 判断是否修改成功
     */
    boolean updateAdminById(AdminBean adminBean,Integer roleId);

    /**
     * 根据管理员ID删除对应的管理员
     * @param id 前端对应id
     * @return 返回是否删除成功
     */
    boolean delAdminById(Integer id);

    /**
     * 判断登录名是否重复
     * @param loginName 登录名
     * @param id id
     * @return 判断结果
     */
    boolean checkLoginNameIsRepeat(String loginName,Integer id);

    /**
     * 新增管理员
     * @param adminBean 携带信息的adminBean对象
     * @param roleId 角色信息
     * @return 是否成功
     */
    boolean saveAdmin(AdminBean adminBean,Integer roleId);

    /**
     * 新增管理员
     * BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG
     * 此方用于批量添加管理员 由于从excel中暂时无法将fk_role_id封装到Bean中  所以数据库的fk_role_id暂时默认为2
     * @param adminBean 携带信息的adminBean
     * @return 是否成功;
     */
    boolean addAdmin( AdminBean adminBean);
}
